package com.ncomz.cspace.members.controller;

import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.ncomz.cspace.members.dao.MembersDAO;
import com.ncomz.cspace.members.model.MembersVO;


/**
 * 
 * 1. ClassName		: MembersController
 * 2. FileName		: MembersController.java
 * 3. Package		: com.ncomz.cspace.members.controller
 * 4. Comment		: 회원가입 관리하는 컨트롤러
 * 5. 작성자		: 이석균
 * 6. 작성일		: 2013. 8. 22. 오후 12:26:50
 */
@Controller
public class MembersController {
	
	@Autowired
	MembersDAO mbDAO;
	
	private static final Logger log = LoggerFactory.getLogger(MembersController.class);
	
	/**
	 * 
	 * 1. MethodName	: members
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:26:41
	 * 5. Comment		: 회원가입폼에 있는 정보를 가지고 디비에 넣는 메소드
	 * @param param
	 * @return ModelAndView
	 * @param vo
	 * @param session
	 * @return
	 * @throws Exception 
	 */
	@RequestMapping(value = "/members.do")
	public ModelAndView members(MembersVO vo, HttpSession session) throws Exception{
		
		ModelAndView mav = new ModelAndView();
		String USER_PWD = vo.getMember_password();
		vo.setMember_password(USER_PWD);
		
		mbDAO.insertMember(vo);
		
		mav.setViewName("redirect:/loginpage.do");
		
		log.info("insert시작함");

		return mav;
	}

	/**
	 * 
	 * 1. MethodName	: overlapTest
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:28:58
	 * 5. Comment		: 아이디 중복확인을 하는 메소드 
	 * @param param
	 * @return String
	 * @param member_id
	 * @return
	 */
	@RequestMapping(value = "/overlaptest.do")
	@ResponseBody
	public String overlapTest(String member_id){
		String count_Id = mbDAO.overlapTest(member_id);
		return count_Id;
	}
	
	/**
	 * 
	 * 1. MethodName	: overlapTest
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:28:58
	 * 5. Comment		: 회원가입 폼으로 가는 메소드
	 * @param param
	 * @return String
	 * @param member_id
	 * @return
	 */
	@RequestMapping(value = "/membership.do")
	public String membership(){
		return "/members/members";
	}
	
	/**
	 * 
	 * 1. MethodName	: pwd_search
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:29:53
	 * 5. Comment		: 비밀번호 찾기 폼으로 가는 메소드 
	 * @param param
	 * @return String
	 * @return
	 */
	@RequestMapping(value="/password_search.do")
	public String pwd_search()
	{
		return "/members/password_search";
	}
	
	/**
	 * 	
	 * 1. MethodName	: password_search
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:30:43
	 * 5. Comment		: 비밀번호와 비밀번호힌트가 맞는가 체크
	 * @param param
	 * @return String
	 * @param vo
	 * @return
	 */
	@RequestMapping(value="/pwd_search.do")
	@ResponseBody
	public String password_search(MembersVO vo){
		
		
		String pwd_Identify = mbDAO.passwordCnt(vo);
		
		
		return pwd_Identify;
	}
	
	/**
	 * 
	 * 1. MethodName	: password
	 * 2. ClassName		: MembersController
	 * 3. 작성자		: 이석균
	 * 4. 작성일		: 2013. 8. 22. 오후 12:34:06
	 * 5. Comment		: 비밀번호를 찾음
	 * @param param
	 * @return String
	 * @param member_id
	 * @return
	 */
	@RequestMapping(value="/password.do")
	@ResponseBody
	public String password(String member_id){
		
		String password = null;
		
		password = mbDAO.getPassword(member_id);
		
		return password;
	}

}